home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 1
/
Nebula One.iso
/
Financial
/
Stopwatch2.3
/
Source
/
SortList.h
< prev
next >
Wrap
Text File
|
1995-06-12
|
2KB
|
70 lines
/*
* For legal stuff see the file COPYRIGHT
*/
#import <objc/List.h>
@interface SortList : List
{
id delegate ; // an object that knows how to compare elements
SEL sortMethod; // method used to sort
SEL compareMethod; // method used to compare to key values
SEL valueMethod; // method for getting key value
id compObject; // object which will do actual comparison
SEL compMethod; // method which will be used to do comparison
BOOL sorted; // whether the list is sorted
BOOL autoSort; // whether the list sorts itself automatically
}
// overridden methods
- initCount:(unsigned int)numSlots;
- (unsigned int)indexOf:anObject;
- addObject:anObject;
- addObjectIfAbsent:anObject;
- insertObject:anObject at:(unsigned int)index;
- replaceObject:anObject with:newObject;
- replaceObjectAt:(unsigned int)index with:newObject;
- update;
- (BOOL)isSorted;
- setAutoSort:(BOOL)sortFlag;
- (BOOL)doesAutoSort;
- setDelegate:obj;
- delegate;
- useSortMethod:(SEL)method;
- (SEL)sortMethod;
- useComparisonMethod:(SEL)method;
- (SEL)comparisonMethod;
- useValueMethod:(SEL)method;
- (SEL)valueMethod;
- sort;
- insertObject:anObject;
- mergeList:otherList;
- (unsigned int)indexOfObjectWithKey:proxyObject;
- shellsort;
- (int)compare:object1 :object2;
@end
@interface SortingListDelegate
/*
* Delegated comparitor method. Delegate must compare the two objects
* and return a number < 0 if object1 < object2, 0 if object1 = object2, and a
* number greater than 0 if object1 > object2 in whatever way makes sense to
* the application. The delegate can use the valueMethods already set or
* ignore them and use its own.
*/
- (int)compare:object1 :object2;
/*
* Delegated sort method (optional). Delegate may implement its own sorting
* routine (though it kinda defeats the whole purpose of this object). The
* SortList will send itself as the argument. Note that the delegate can
* access the comparisonMethods and valueMethods already assigned or can
* ignore them and use its own.
*/
- sort:aList;
@end